Sketch Monitoraggio fiume: Lato Client
/* Accende il led se riceve il carattere a e motore pp gira orario
 Spegne il led se riceve il carattere “s” e motore pp gira antiorario
 Se riceve “p” si porta la potenza in trasmissione a 100 mW
*/
#include "LoraNode.h"
LoraNode Node(2); //Instance node 2
bool SHIELD=true; //Flag to verify correct link with radio module
#define pana 2 //Analogic pin
#include <Motorstep.h>
Motorstep Motorstep (4,5,6,7,25); // Pin utilizzati + 25 ms di delay
void setup() {
 pinMode(3, OUTPUT);
 Serial.begin(9600);
 if (!Node.begin()) {Serial.println("No LoRa module!");SHIELD=false;return;}
 SX.setPower(4); // Setta alla potenza indicata 4= 50mW
 Node.printConfig(); //Print radio config (for information)
 Node.printAddresses(); //Print network data (for information)
 Serial.println("Attendo istruzioni");
}
void loop()
{
 bool ack=false;
 if (!SHIELD) return;
 if (Node.newMessAvailable(1,20000)) {replay();}

}
void replay()
{
 // Modifica per stampare il comando inviato dal server
 char* mess=Node.getMessage();
 int val=atoi(mess);
 Serial.println(mess);
 if (mess[0] == 'a')
 {
 digitalWrite(3, HIGH);
 int v=analogRead(pana); //read value
 char sv[10];
 itoa(v,sv,10); //transorm value in char
 Node.writeMessage(1,sv,500); //send al nodo 1(server)
 for (int i=0; i<100; ++i)
 Motorstep.orario();
 }

 if (mess[0] == 's')
 {
 digitalWrite(3, LOW);
 for (int i=100; i>0; --i)
 Motorstep.antiorario();

 }

 if (mess[0] == 'p')
 {
 SX.setPower(5); // Setta alla potenza indicata 5 = 100 mW
 Node.printConfig(); //Print radio config (for information)
 Node.printAddresses(); //Print network data (for information)
 int v= 5; //read value della potenza
 char sv[10];
 itoa(v,sv,10); //transform value in char
 Node.writeMessage(1,sv,500); //send al nodo 1(server)
 }
}
 